package com.example.reactor;

import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.List;

public class ConversionExample {
    public static void main(String[] args) {
        // 示例 1: 使用 Mono 转换操作符
        Mono<Integer> mono = Mono.just("123")
                .map(Integer::parseInt)
                .flatMap(i -> Mono.just(i * 2))
                .doOnNext(System.out::println);

        mono.subscribe();

        // 示例 2: 使用 Flux 转换操作符
        Flux<List<Integer>> flux = Flux.just("1", "2", "3", "4", "5")
                .map(Integer::parseInt)
                .filter(i -> i % 2 == 0)
                .flatMap(i -> Flux.just(i * 2))
                .concatMap(i -> Flux.just(i + 1))
                .buffer(2)
                .doOnNext(System.out::println);

        flux.subscribe();
    }
}
